﻿Public Class PosicionVertice
    Inherits Posicion
    Private o As OrientacionVertice
    Public Enum OrientacionVertice
        Norte
        Noroeste
        Noreste
        Este
        Sureste
        Suroeste
        Oeste
        Sur
    End Enum

    Public Sub New()
        MyBase.New()
        o = OrientacionVertice.Sur
    End Sub
    Public Sub New(ByVal p As PosicionVertice)
        MyBase.New(p)
        o.pOrientacion()

    End Sub
    Public Sub New(ByVal p As PosicionVertice, ByVal o As OrientacionVertice)
        MyBase.New(p)
        o = o

    End Sub
    Public Sub New(ByVal s As String)
        MyBase.New(s)
        o = s.Substring(s.IndexOf(":") + 1, s.Length)
    End Sub


    Public Sub normaliza()
        Select Case (o)
            Case OrientacionVertice.Suroeste
                py = py + 1
                o = OrientacionVertice.Norte
            Case OrientacionVertice.Sureste
                pX = pX + 1
                o = OrientacionVertice.Norte
            Case OrientacionVertice.Noroeste
                pX = pX - 1

                o = OrientacionVertice.Sur
            Case OrientacionVertice.Noreste
                py = py - 1
                o = OrientacionVertice.Sur
        End Select
    End Sub



    Public Function sinonimos(ByVal rpv As PosicionArista()) As PosicionArista()
        If rpv.Equals(Nothing) Then
            rpv(2) = New PosicionArista()
        End If
        For i As Integer = 0 To rpv.Length
            If rpv.Equals(Nothing) Then
                rpv(i) = New PosicionArista()
            End If
        Next i
        normaliza()
        Dim o1 As PosicionArista = rpv(0)
        Select Case o
            Case OrientacionVertice.Este
                pX = pX + 1
                py = py - 1
                o = OrientacionVertice.Oeste
            Case OrientacionVertice.Noreste
                py = py - 1
                o = OrientacionVertice.Suroeste
            Case OrientacionVertice.Noroeste
                pX = pX - 1

                o = OrientacionVertice.Sureste
        End Select
        Return rpv
    End Function




End Class
